import * as Picker from 'react-native-image-picker';
import { Platform } from 'react-native';

/**
 * 图片选择服务
 */
export default class ImagePickerService {

  /**
   * 选择图片
   * @param title
   * @returns {Promise}
   * @private
   */
  static showImagePicker(title) {
    return new Promise((resolve, reject) => {
      const options = {
        title,              // 标题
        mediaType: 'photo', // 图片或视频 'photo', 'video'
        noData: true,       // 极大地提高大图片的性能
        cancelButtonTitle: '取消',    // 取消按钮
        takePhotoButtonTitle: '拍照', // 拍照按钮
        chooseFromLibraryButtonTitle: '选择照片', // 从图库选择照片
        cameraType: 'back',           // 前后摄像头 类型 'front' or 'back'
        videoQuality: 'high',         // 视频质量 'low', 'medium', or 'high'

        storageOptions: {
          skipBackup: true,   // 如果true，该照片将不会备份到iCloud
          path: 'images',     // 如果设置，将保存图像Documents/[path]/而不是根目录Documents
        },
      };

      Picker.showImagePicker(options, (response) => {
        // 用户取消
        if (response.didCancel) {
          reject(new Error('cancel'));
        }
        // 错误
        else if (response.error) {
          reject(new Error(response.error));
        }
        // 图片返回 android和ios不一样
        else {
          resolve(Platform.OS === 'android' ? `${response.path}` : response.uri);
        }
      });
    });
  }

}


/**
 *
 *   使用方式
 ImagePickerService.showImagePicker(i18n('deviceRepair.choosePic'))
 .then((avatar) => {
    const prefix = 'file://';
    let path = avatar;
    if (Platform.OS === 'ios' && path.startsWith(prefix)) {
      path = avatar.substring(prefix.length);
    }

  })
 .catch((error) => {
    if (error.message === 'cancel') {
      return;
    }
  });
 }
 */
